//	NAME:			McImagePolong.h
//
//	SYNOPSIS:		McPolong.h
//                  McPolong2D.h
//                  McPolong3D.h
//                  DpObjectPolong.h
//
//	DESCRIPTION:	This file define class DpPhotoPolong
//
//	SEE ALSO:		McPolong2D
//                  McPolong3D
//                  DpObjectPolong
//
//	FILES:			None
//
//	REVISED:
//                  09/27/1997 BTB : to add consistency and removing polonger
//                                   to refrenece types
//
//	CREATED:		07/26/1998
//
//	AUTHORS:		Zhuowen Tu
//
//


#ifndef _MC_IMAGEPOINT_H_
#define _MC_IMAGEPOINT_H_

#include <stdlib.h>
#include <stdio.h>
#include <fstream>


#include "mcPoint2D.h"

class McImagePoint
{

public:

    // LIFECYCLE
    McImagePoint();
	McImagePoint(const int x1, const int y1);

    // OPERATORS
	McImagePoint	operator+(const McImagePoint& p) const;
	McImagePoint	operator-(const McImagePoint& p) const;
	McImagePoint&	operator=(const McImagePoint& p);
	bool			operator==(const McImagePoint& p) const;
	virtual	ofstream &		operator>>(ofstream &strm);
	virtual	ifstream &		operator<<(ifstream &strm);
//	ofstream &       operator>>(ofstream &strm, McImagePoint &im);
//	ifstream &       operator<<(ifstream &strm, McImagePoint &im);  

    // ACCESS
	inline	short	X(void) const {return x;};
	inline	short	Y(void) const {return y;};
	inline	void	SetX(const int x1){x=x1;};
	inline  void	SetY(const int y1){y=y1;};
	inline	short	Row(void) const {return x;};
	inline	short	Col(void) const {return y;};
	inline  void	SetRow(const int row1){x=row1;};
	inline	void	SetCol(const int col1){y=col1;};
	virtual void	Set(const McPoint2D pt);

protected:
	short	x;
	short	y;
};



#endif
